﻿using System;

namespace Entities
{
    public class Usuario
    {
        public long IDUsuario { get; set; }
        public string Nombre { get; set; }
        public string Apellido { get; set; }
        public long DNI { get; set; }
        public string Email { get; set; }
        public string Contraseña { get; set; }
        public string Telefono { get; set; }
        public DateTime FechaAlta { get; set; }
        public DateTime FechaBaja { get; set; }
        public UsuarioTipo UsuarioTipo { get; set; }
        public Direccion Direccion { get; set; }
        public Provincia Provincia { get; set; }
        public Pais Pais { get; set; }
        public Negocio Negocio { get; set; }


        public static Usuario BuscarUsuarioPorEmail (string parEmail)
        {
            Usuario oUsuario = new Usuario();
            oUsuario = DAL.UsuarioDAL.BuscarUsuarioUnoPorEmail (parEmail);
            return oUsuario;
        }

        public static bool UsuarioValidarEmail(string pEmail)
        {
            return DAL.UsuarioDAL.ValidarEmail(pEmail);
        }


        public static Usuario Autenticar (string parEmail, string parContraseña)
        {
            Usuario oUsuario = new Usuario();
            oUsuario = DAL.UsuarioDAL.Autenticar(parEmail, parContraseña);
            return oUsuario;
        }

        public static Enumeraciones.EnumUsuarioTipo BuscarUsuarioTipoPorID(long parIdUsuarioTipo)
        {
            Entities.Enumeraciones.EnumUsuarioTipo oUsuarioTipo;
            switch (parIdUsuarioTipo)
            {
                case 1 :
                    oUsuarioTipo = Entities.Enumeraciones.EnumUsuarioTipo.Admin;
                    break;
                case 2:
                    oUsuarioTipo = Entities.Enumeraciones.EnumUsuarioTipo.EncargadoNegocio;
                    break;
                case 3:
                    oUsuarioTipo = Entities.Enumeraciones.EnumUsuarioTipo.Vendedor;
                    break;
                case 4:
                    oUsuarioTipo = Entities.Enumeraciones.EnumUsuarioTipo.Repartidor;
                    break;
                case 5:
                    oUsuarioTipo = Entities.Enumeraciones.EnumUsuarioTipo.Cliente;
                    break;
                default :
                    oUsuarioTipo = Entities.Enumeraciones.EnumUsuarioTipo.Cliente;
                    break;
            }
            return oUsuarioTipo;
        }

        public static Usuario BuscarUsuarioPorIDUsuario(long parIDUsuario)
        {
            return DAL.UsuarioDAL.BuscarUnoPorID(parIDUsuario, false);
        }
    }
}
